﻿//using System;
//using System.Collections.Generic;
//using System.Text;
//using System.Drawing;
//using PH.Common;
//using PH.Map;

//namespace Hoshimi.Final
//{
//    class Class1 : MiNanoContainer
//    {

//        public enum EstadoContainer
//        {
//            BuscandoAzn,
//            RecolectadoAzn,
//            BuscandoNeedle,
//            TransfiriendoAzn
//        }
//        EstadoContainer ProximaAccion = EstadoContainer.BuscandoAzn;
//        List<Point> lstHPconAgujasLlenas = new List<Point>();
//        List<Point> lstHPconAgujasAux = new List<Point>();
        

//        public void a(MyAI player, int recorrido)
//        {
//            int[] vec = new int[player.Grupos];
//            switch (ProximaAccion)
//            {
//                #region BuscandoAzn
//                case EstadoContainer.BuscandoAzn:
//                    Point AZNcenrcano = Util.PuntoMasCercano(Util.PuntoMasCercano(this.Location, player.lstHoshimiPointsOrdenados, lstHPconAgujasLlenas), player.lstAzn);
                    
//                    if(this.Stock == this.ContainerCapacity)
//                    {
//                        ProximaAccion = EstadoContainer.BuscandoNeedle;
//                    }
//                    else
//                    {
//                        if(this.Location != AZNcenrcano)
//                        {
//                            if(this.State == NanoBotState.WaitingOrders)
//                            {
//                                MoveTo(AZNcenrcano);
//                            }
//                        }
//                        else
//                        {
//                            this.StopMoving();
//                            ProximaAccion = EstadoContainer.RecolectadoAzn;
//                        }
//                    }

//                    break;
//                #endregion

//                #region RecolectadoAzn
//                case EstadoContainer.RecolectadoAzn:

//                    this.CollectFrom(this.Location, 10);
//                    ProximaAccion = EstadoContainer.BuscandoNeedle;
//                    break;
//                #endregion

//                #region BuscandoNeedle
//                case EstadoContainer.BuscandoNeedle:

//                    Point HPcercano = Util.PuntoMasCercano(this.Location,player.lstHoshimiPointsOrdenados,lstHPconAgujasLlenas,lstHPconAgujasAux);

//                    for (int i = 0; i <= player.Grupos * 2; i++)
//                    {
//                        if (i == recorrido)
//                        {
//                            if (this.Location != HPcercano)
//                            {

//                                if (vec[recorrido] == 2)
//                                {
//                                    vec[recorrido] = 0;
//                                    lstHPconAgujasAux.Add(HPcercano);
//                                }
//                                else
//                                {
//                                    vec[recorrido]++;
//                                    if (this.State == NanoBotState.WaitingOrders)
//                                    {
//                                        this.MoveTo(HPcercano);
//                                    }

//                                }

//                            }
//                            else
//                            {
//                                this.StopMoving();
//                                ProximaAccion = EstadoContainer.TransfiriendoAzn;
//                            }
//                       }

//                    }

//                    break;
//                #endregion

//                #region TransfiriendoAzn
//                case EstadoContainer.TransfiriendoAzn:

//                    this.TransferTo(this.Location, 10);
//                    lstHPconAgujasLlenas.Add(this.Location);
//                    lstHPconAgujasAux.Remove(this.Location);

//                    ProximaAccion = EstadoContainer.BuscandoAzn;
//                    break;
//                #endregion
//            }
//        }
//    }
//}








//            switch (ProximaAccion)
//            {
//                #region Buscar Azn
//                case EstadoContainer.BuscandoAzn:

//                    puntoDestino = Util.PuntoMasCercano(this.Location, player.lstHoshimiPointsOrdenados, lstHoshimiPointsOrdenadosExeptuados);

//                    Point aznCercano = Util.PuntoMasCercano(puntoDestino,player.lstAzn);

//                    //player.Log.Items.Add("hoshimipoin:"+ puntoDestino + " azn:" + aznCercano);
//                        if (this.Location != aznCercano)
//                        {
//                            if (this.State == NanoBotState.WaitingOrders)
//                            {
//                                this.MoveTo(aznCercano);
//                            }
//                        }
//                        else
//                        {
//                            this.StopMoving();
//                            ProximaAccion = EstadoContainer.RecolectadoAzn;
//                        }
                        
//                    break;
//                #endregion

//                #region Recolectar Azn
//                case EstadoContainer.RecolectadoAzn:
//                    if (this.Stock != this.ContainerCapacity)
//                    {
//                        this.CollectFrom(this.Location, 10);
//                        //player.Log.Items.Add("cargando");
//                    }
//                    else
//                    {
//                        //player.Log.Items.Add("ya cargue me voy a la aguja");
//                        ProximaAccion = EstadoContainer.BuscandoNeedle;
//                    }
//                    break;
//                #endregion

//                #region Buscar Aguja
//                case EstadoContainer.BuscandoNeedle:
//                    //player.Log.Items.Add("grupos de caza=" + player.Grupos);
//                    for (int i = 0; i <= player.Grupos; i++)
//                    {
//                        //player.Log.Items.Add("Entre al for. ciclo:" + i);
//                        if (Recorrido == i)
//                        {
//                            //player.Log.Items.Add("entre en:" + Recorrido + " = " + i);
//                            if (this.Location != puntoDestino)
//                            {
//                                if (this.State == NanoBotState.WaitingOrders)
//                                {
//                                    this.MoveTo(puntoDestino);
//                                }
//                            }
//                            else
//                            {
//                                this.StopMoving();
//                                ProximaAccion = EstadoContainer.TransfiriendoAzn;
//                            }
//                        }
//                    }

//                    break;
//                #endregion

//                #region Tranferir
//                case EstadoContainer.TransfiriendoAzn:
//                        if (this.State == NanoBotState.WaitingOrders)
//                        {
//                            this.TransferTo(this.Location, 10);
//                            ProximaAccion = EstadoContainer.BuscandoAzn;
//                            puntoDestino = Util.PuntoMasCercano(this.Location, player.lstHoshimiPointsOrdenados, lstHoshimiPointsOrdenadosExeptuados);
//                            lstHoshimiPointsOrdenadosExeptuados.Add(puntoDestino);
//                        }

//                    break;
//                #endregion
//            }


//-------------------------------------------



//                        if (this.Location != HPcercano)
//                        {

//                            if (player.vec[Recorrido] == 1)
//                            {      
//                                if (this.State == NanoBotState.WaitingOrders)
//                                {
//                                    player.vec[Recorrido] = 0;
//                                    lstHPconAgujasAux.Add(HPcercano);
//                                    HPcercano = Util.PuntoMasCercano(this.Location, player.lstHoshimiPointsOrdenados, lstHPconAgujasLlenas, lstHPconAgujasAux);
//                                    this.MoveTo(HPcercano);
//                                    player.Log.Items.Add("ACA CAMBIO EL HP AH IR");
//                                }
//                            }
//                            else
//                            {
//                                if (this.State == NanoBotState.WaitingOrders)
//                                {
//                                    player.vec[Recorrido] = player.vec[Recorrido] + 1;
//                                    this.MoveTo(HPcercano);
//                                    player.Log.Items.Add(player.vec[Recorrido] + " del recorrido:" + Recorrido);
//                                }

//                            }

//                        }
//                        else
//                        {
//                            this.StopMoving();
//                            ProximaAccion = EstadoContainer.TransfiriendoAzn;
//                        }